Skip to main content

Configuration Templating

Configuration templating — bu dastur va xizmatlar uchun konfiguratsiya fayllarini dinamik tarzda yaratish va boshqarish usuli. Templating yordamida bir nechta muhitlar (development, staging, production) uchun bir xil konfiguratsiya faylini turli qiymatlar bilan tez va oson generatsiya qilish mumkin.

Templating Foydalari

  • Konfiguratsiyani avtomatlashtirish
  • Xatoliklarni kamaytirish
  • Bir nechta muhitlar uchun moslashuvchanlik
  • Maxfiy ma’lumotlarni ajratib boshqarish

Oddiy Misol: Bash bilan

config.template fayl:

DB_HOST={{DB_HOST}}
DB_USER={{DB_USER}}
DB_PASS={{DB_PASS}}

Bash skript yordamida templatedan real fayl yaratish:

#!/bin/bash
export DB_HOST=localhost
export DB_USER=myuser
export DB_PASS=secret

cat config.template | \
sed "s/{{DB_HOST}}/$DB_HOST/" | \
sed "s/{{DB_USER}}/$DB_USER/" | \
sed "s/{{DB_PASS}}/$DB_PASS/" > config.conf

Templating Asboblari

1. envsubst (GNU gettext)

envsubst yordamida muhit o‘zgaruvchilarini konfiguratsiya fayliga joylash:

DB_HOST=$DB_HOST
DB_USER=$DB_USER
DB_PASS=$DB_PASS

Faylni generatsiya qilish:

envsubst < config.template > config.conf

2. Jinja2 (Python)

Jinja2 — kuchli templating engine. Misol:

from jinja2 import Template

template = Template("""
DB_HOST={{ db_host }}
DB_USER={{ db_user }}
DB_PASS={{ db_pass }}
""")

config = template.render(db_host="localhost", db_user="myuser", db_pass="secret")
print(config)

3. Ansible Templating

Ansible-da templating uchun .j2 fayllar ishlatiladi:

DB_HOST={{ db_host }}
DB_USER={{ db_user }}
DB_PASS={{ db_pass }}

Playbookda:

- name: Generate config
template:
src: config.j2
dest: /etc/myapp/config.conf

Docker va Kubernetesda Templating

  • Docker Compose: .env fayl orqali templating
  • Kubernetes: Helm charts va Kustomize yordamida konfiguratsiya templating

Maxfiy Ma’lumotlarni Templatingda Himoyalash

  • Maxfiy o‘zgaruvchilarni alohida faylda saqlang
  • Fayllarga faqat kerakli huquq bering
  • Version control (git) ga maxfiy fayllarni qo‘shmang (.gitignore)

Foydali Buyruqlar va Havolalar


Configuration templating yordamida tizim va dastur konfiguratsiyasini avtomatlashtirish, xavfsiz va moslashuvchan boshqarish imkoniyatiga ega bo'lasiz.